#pragma once

namespace xRender
{
    BOOL StretchBlt(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL StretchBltSSE(PBITMAP lpbDst, PBITMAPEX lpbSrc);

    BOOL StretchBlt(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL StretchBltSSE(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL StretchBltBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL StretchBltBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);

    BOOL StretchBltBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL StretchBltBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL StretchBltBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL StretchBltBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);

    BOOL StretchBltBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL StretchBltBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL StretchBlt(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey);
    BOOL StretchBltSSE(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey);

    BOOL StretchBlt(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL StretchBltSSE(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL StretchBltAreaAveraging(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL StretchBltAreaAveraging(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL StretchBltAreaAveragingSSE2(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL StretchBltAreaAveragingSSE2(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
}